Subant Task: Sub-builds চালানো

Java Technologies - অ্যাপাচি অ্যান্ট টাস্কস (Apache ANT Tasks) Execution Flow Control Tasks |
133
133

Apache Ant একটি জনপ্রিয় ওপেন সোর্স বিল্ড টুল যা প্রধানত Java প্রজেক্টের বিল্ড, টেস্টিং এবং ডিপ্লয়মেন্টের জন্য ব্যবহৃত হয়। <subant> টাস্কটি অ্যাপাচি অ্যান্টে ব্যবহৃত হয় একটি বিল্ড স্ক্রিপ্টের মধ্যে অন্য বিল্ড স্ক্রিপ্ট (sub-build) চালানোর জন্য। এটি একটি বিল্ড ফাইলের মধ্যে অন্য একটি বিল্ড ফাইল (যেমন সাব-বিল্ড) রেফারেন্স করার সুবিধা প্রদান করে, যা অ্যাপাচি অ্যান্টে মডুলার বিল্ড সিস্টেম তৈরি করতে সাহায্য করে।

Subant Task সাধারণত বড় এবং স্কেলেবল প্রজেক্টে ব্যবহৃত হয় যেখানে একটি মূল বিল্ড স্ক্রিপ্ট (parent build) থেকে একাধিক সাব-বিল্ড স্ক্রিপ্ট (sub-builds) চালানো হয়। এটি প্রজেক্টের বিভিন্ন অংশের জন্য আলাদা আলাদা বিল্ড ফাইল তৈরি করার সুবিধা দেয়।


Subant Task: Overview

<subant> টাস্কটি একটি সাব-বিল্ড স্ক্রিপ্ট চালানোর জন্য ব্যবহৃত হয়। এই টাস্কটি আপনাকে মূল বিল্ড স্ক্রিপ্ট থেকে অন্য বিল্ড স্ক্রিপ্টের টাস্ক বা টার্গেট চালানোর সুযোগ দেয়।

Attributes:

  • file: সাব-বিল্ড ফাইলের পাথ।
  • target: সাব-বিল্ড ফাইলের মধ্যে চালানোর জন্য টার্গেট নাম। যদি এটি নির্দিষ্ট না করা হয়, তবে সাব-বিল্ডের ডিফল্ট টার্গেট চালানো হবে।
  • dir: সাব-বিল্ড ফাইলটি কোথায় রান হবে, অর্থাৎ কাজের ডিরেক্টরি।
  • parallel: যদি true হয়, তাহলে সাব-বিল্ডগুলি সমান্তরালে চালানো হবে (প্যারালাল প্রসেসিং)।
  • inheritall: যদি true হয়, তাহলে মূল বিল্ড স্ক্রিপ্টের সমস্ত প্রপার্টি এবং এন্টারপ্রাইজ কনফিগারেশন সাব-বিল্ডে ঐচ্ছিকভাবে হেরিট করবে।

Subant Task উদাহরণ

উদাহরণ ১: Basic Subant Task

<project name="ParentBuild" default="parent-target">

  <target name="parent-target">
    <echo message="Main build process starts here..."/>

    <!-- Running a sub-build -->
    <subant file="sub-build.xml" target="sub-target"/>
    
    <echo message="Main build process ends here..."/>
  </target>

</project>

ব্যাখ্যা:

  • এখানে <subant> টাস্কটি sub-build.xml ফাইল থেকে sub-target টার্গেট চালাবে।
  • মূল বিল্ড স্ক্রিপ্টের টার্গেট parent-target প্রথমে চালানো হবে, তারপর sub-target সাব-বিল্ড ফাইল থেকে চালানো হবে।
  • সাব-বিল্ড ফাইলের sub-target এর মধ্যে থাকা টাস্ক সম্পন্ন হওয়ার পর মূল বিল্ড স্ক্রিপ্টের বাকি অংশ চালানো হবে।

Subant Task with Inheritance

<subant> টাস্কের inheritall অ্যাট্রিবিউট ব্যবহার করে আপনি মূল বিল্ড ফাইলের সমস্ত প্রপার্টি এবং অন্যান্য কনফিগারেশন সাব-বিল্ডে হেরিট করতে পারেন।

উদাহরণ ২: Subant Task with inheritall

<project name="ParentBuild" default="parent-target">
  
  <!-- Property Definition in Parent Build -->
  <property name="project.name" value="MyJavaApp"/>

  <target name="parent-target">
    <echo message="Running parent build..."/>

    <!-- Running a sub-build with inherited properties -->
    <subant file="sub-build.xml" target="sub-target" inheritall="true"/>
    
    <echo message="Main build complete"/>
  </target>

</project>

sub-build.xml:

<project name="SubBuild" default="sub-target">
  
  <target name="sub-target">
    <!-- Using inherited property from parent build -->
    <echo message="Sub-build for ${project.name}"/>
  </target>

</project>

ব্যাখ্যা:

  • মূল বিল্ড ফাইল parent-build.xmlproject.name নামক একটি প্রপার্টি ডিফাইন করা হয়েছে।
  • <subant inheritall="true"/> ব্যবহারের মাধ্যমে সাব-বিল্ড ফাইল sub-build.xml এই প্রপার্টি ও অন্যান্য কনফিগারেশনকে হেরিট করবে এবং ${project.name} প্রপার্টি ব্যবহার করে সাব-বিল্ডের মধ্যে একটি মেসেজ প্রদর্শিত হবে।

Running Multiple Sub-Tasks (Parallel Execution)

<subant> টাস্কের মাধ্যমে আপনি একাধিক সাব-বিল্ড চালাতে পারেন, এবং যদি parallel="true" অ্যাট্রিবিউট ব্যবহার করেন, তাহলে একাধিক সাব-বিল্ড সমান্তরালে (প্যারালাল) চালানো হবে।

উদাহরণ ৩: Parallel Subant Task

<project name="ParentBuild" default="parent-target">

  <target name="parent-target">
    <echo message="Running parent build..."/>

    <!-- Running multiple sub-builds in parallel -->
    <subant file="sub-build1.xml" target="sub-target" parallel="true"/>
    <subant file="sub-build2.xml" target="sub-target" parallel="true"/>
    
    <echo message="All sub-builds completed"/>
  </target>

</project>

ব্যাখ্যা:

  • এখানে, দুটি সাব-বিল্ড sub-build1.xml এবং sub-build2.xml সমান্তরালে (parallel) চালানো হবে।
  • parallel="true" অ্যাট্রিবিউট ব্যবহার করা হয়েছে, যার ফলে দুটি সাব-বিল্ড একসাথে চালানো হবে।

Subant Task with Dependencies

সাব-বিল্ডগুলির মধ্যে নির্ভরতা তৈরি করতে পারেন, অর্থাৎ একটি সাব-বিল্ডের সম্পন্ন হওয়ার পর অন্য একটি চালানোর জন্য নির্ধারণ করা যেতে পারে।

উদাহরণ ৪: Subant with Dependencies

<project name="ParentBuild" default="parent-target">

  <target name="parent-target">
    <echo message="Running parent build..."/>

    <!-- Running sub-build 1 first -->
    <subant file="sub-build1.xml" target="sub-target"/>

    <!-- Running sub-build 2 after sub-build 1 completes -->
    <subant file="sub-build2.xml" target="sub-target"/>
    
    <echo message="Sub-builds completed in sequence"/>
  </target>

</project>

ব্যাখ্যা:

  • sub-build1.xml টাস্কটি প্রথমে চালানো হবে, এবং এর পরেই sub-build2.xml টাস্কটি চালানো হবে।
  • এখানে, দুটি সাব-বিল্ড একে অপরের উপর নির্ভরশীল, এবং প্রতিটি সাব-বিল্ডের কাজ সম্পন্ন হওয়ার পরে পরবর্তী সাব-বিল্ড চালানো হবে।

Advantages of Using <subant> Task

  • Modular Builds: বিভিন্ন অংশের জন্য আলাদা বিল্ড ফাইল ব্যবহার করা সম্ভব, যা বিল্ড স্ক্রিপ্টকে আরও মডুলার ও পরিষ্কার করে তোলে।
  • Reuse of Build Files: আপনি একটি বিল্ড ফাইলের টাস্ক বা টার্গেট অন্য একটি বিল্ড ফাইলে পুনঃব্যবহার করতে পারেন।
  • Parallel Execution: একাধিক সাব-বিল্ড একসাথে চালানোর মাধ্যমে বিল্ড প্রক্রিয়া দ্রুত করা যায়।
  • Simplifies Complex Projects: বড় এবং স্কেলেবল প্রজেক্টে কাজের বিল্ড প্রক্রিয়া সহজতর ও ব্যাবস্থাপনাযোগ্য হয়।

সারাংশ

<subant> টাস্কটি অ্যাপাচি অ্যান্টে একটি অত্যন্ত কার্যকর টাস্ক যা আপনাকে মূল বিল্ড স্ক্রিপ্ট থেকে একাধিক সাব-বিল্ড ফাইল চালাতে সাহায্য করে। এটি আপনাকে বিল্ড স্ক্রিপ্টের মধ্যে মডুলার কাজ করতে এবং একাধিক সাব-বিল্ড ফাইল পুনরায় ব্যবহার করতে সক্ষম করে। parallel="true" অ্যাট্রিবিউট ব্যবহার করে আপনি একাধিক সাব-বিল্ড সমান্তরালে চালাতে পারেন এবং inheritall অ্যাট্রিবিউটের মাধ্যমে মূল বিল্ড স্ক্রিপ্টের প্রপার্টি ও কনফিগারেশন সাব-বিল্ডে হেরিট করতে পারেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion